Have anyone read "Effective Java"? Compare the "item 10: Override clone judiciously" with this interview is fun

http://www.artima.com/intv/issuesP.html


No perfect design because we need difference design trade off for difference task, like performance, time, resource,  ....
No perfect design because difference user have difference expectation of API ....
No perfect design because requirement change by time

http://www.artima.com/intv/perfect.html